Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / tests / backend / test_config_manager.py

Displaying Raw • Download


tests/backend/test_config_manager.py a8a9eb3ff9168e00926505dbf1f16b6c85c85c57 (a8a9eb3f) Text, 3.19 KB

T8b949e# SPDX-License-Identifier: 0BSD

Tff7b72import T7ee787os
Tff7b72import T7ee787tempfile

Tff7b72import T7ee787pytest

Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787config_manager Tff7b72import Te6edf3ConfigManager
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787database Tff7b72import Te6edf3Database


Tf0883e@pytestTff7b72.Td2a8fffixture
Tff7b72def Td2a8ffdbTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3fdTb4b4b4, Te6edf3path Tff7b72= Te6edf3tempfileTff7b72.Td2a8ffmkstempTb4b4b4(Tb4b4b4)
Te6edf3osTff7b72.Td2a8ffcloseTb4b4b4(Te6edf3fdTb4b4b4)
Te6edf3database Tff7b72= Te6edf3DatabaseTb4b4b4(Te6edf3pathTb4b4b4)
Te6edf3databaseTff7b72.Td2a8ffinitializeTb4b4b4(Tb4b4b4)
Tff7b72yield Te6edf3database
Te6edf3databaseTff7b72.Td2a8ffcloseTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffexistsTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4:
Te6edf3osTff7b72.Td2a8ffremoveTb4b4b4(Te6edf3pathTb4b4b4)


Tff7b72def Td2a8fftest_config_manager_get_defaultTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4:
Te6edf3config Tff7b72= Te6edf3ConfigManagerTb4b4b4(Te6edf3dbTb4b4b4)
Tff7b72assert Te6edf3configTff7b72.Td2a8ffdisplay_nameTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffAnonymous PeerTa5d6ff"
Tff7b72assert Te6edf3configTff7b72.Td2a8ffthemeTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6fflightTa5d6ff"
Tff7b72assert Te6edf3configTff7b72.Td2a8fflxmf_inbound_stamp_costTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72== T79c0ff8


Tff7b72def Td2a8fftest_config_manager_set_getTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4:
Te6edf3config Tff7b72= Te6edf3ConfigManagerTb4b4b4(Te6edf3dbTb4b4b4)
Te6edf3configTff7b72.Td2a8ffdisplay_nameTff7b72.Td2a8ffsetTb4b4b4(Ta5d6ff"Ta5d6ffTest UserTa5d6ff"Tb4b4b4)
Tff7b72assert Te6edf3configTff7b72.Td2a8ffdisplay_nameTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffTest UserTa5d6ff"

Te6edf3configTff7b72.Td2a8fflxmf_inbound_stamp_costTff7b72.Td2a8ffsetTb4b4b4(T79c0ff20Tb4b4b4)
Tff7b72assert Te6edf3configTff7b72.Td2a8fflxmf_inbound_stamp_costTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72== T79c0ff20

Te6edf3configTff7b72.Td2a8fflxmf_inbound_stamp_costTff7b72.Td2a8ffsetTb4b4b4(T79c0ff0Tb4b4b4)
Tff7b72assert Te6edf3configTff7b72.Td2a8fflxmf_inbound_stamp_costTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72== T79c0ff0

Te6edf3configTff7b72.Td2a8ffauto_announce_enabledTff7b72.Td2a8ffsetTb4b4b4(Tff7b72TrueTb4b4b4)
Tff7b72assert Te6edf3configTff7b72.Td2a8ffauto_announce_enabledTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72is Tff7b72True


Tff7b72def Td2a8fftest_config_manager_persistenceTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4:
Te6edf3config Tff7b72= Te6edf3ConfigManagerTb4b4b4(Te6edf3dbTb4b4b4)
Te6edf3configTff7b72.Td2a8ffdisplay_nameTff7b72.Td2a8ffsetTb4b4b4(Ta5d6ff"Ta5d6ffPersistent UserTa5d6ff"Tb4b4b4)

T8b949e# New manager instance with same DB
Te6edf3config2 Tff7b72= Te6edf3ConfigManagerTb4b4b4(Te6edf3dbTb4b4b4)
Tff7b72assert Te6edf3config2Tff7b72.Td2a8ffdisplay_nameTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffPersistent UserTa5d6ff"


Tff7b72def Td2a8fftest_config_manager_type_safetyTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4:
Te6edf3config Tff7b72= Te6edf3ConfigManagerTb4b4b4(Te6edf3dbTb4b4b4)

T8b949e# IntConfig
Te6edf3configTff7b72.Td2a8fflxmf_inbound_stamp_costTff7b72.Td2a8ffsetTb4b4b4(
Ta5d6ff"Ta5d6ff15Ta5d6ff"Tb4b4b4,
Tb4b4b4) T8b949e# Should handle string to int if implementation allows or just store it
T8b949e# Looking at implementation might be better, but let's test basic set/get
Te6edf3configTff7b72.Td2a8fflxmf_inbound_stamp_costTff7b72.Td2a8ffsetTb4b4b4(T79c0ff15Tb4b4b4)
Tff7b72assert Tffa657isinstanceTb4b4b4(Te6edf3configTff7b72.Td2a8fflxmf_inbound_stamp_costTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4)Tb4b4b4, Tffa657intTb4b4b4)
Tff7b72assert Te6edf3configTff7b72.Td2a8fflxmf_inbound_stamp_costTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72== T79c0ff15

T8b949e# BoolConfig
Te6edf3configTff7b72.Td2a8ffauto_announce_enabledTff7b72.Td2a8ffsetTb4b4b4(Tff7b72TrueTb4b4b4)
Tff7b72assert Te6edf3configTff7b72.Td2a8ffauto_announce_enabledTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72is Tff7b72True
Te6edf3configTff7b72.Td2a8ffauto_announce_enabledTff7b72.Td2a8ffsetTb4b4b4(Tff7b72FalseTb4b4b4)
Tff7b72assert Te6edf3configTff7b72.Td2a8ffauto_announce_enabledTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72is Tff7b72False


Tff7b72def Td2a8fftest_telephony_configTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4:
Te6edf3config Tff7b72= Te6edf3ConfigManagerTb4b4b4(Te6edf3dbTb4b4b4)

T8b949e# Test DND
Tff7b72assert Te6edf3configTff7b72.Td2a8ffdo_not_disturb_enabledTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72is Tff7b72False
Te6edf3configTff7b72.Td2a8ffdo_not_disturb_enabledTff7b72.Td2a8ffsetTb4b4b4(Tff7b72TrueTb4b4b4)
Tff7b72assert Te6edf3configTff7b72.Td2a8ffdo_not_disturb_enabledTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72is Tff7b72True

T8b949e# Test Contacts Only (defaults to True for security)
Tff7b72assert Te6edf3configTff7b72.Td2a8fftelephone_allow_calls_from_contacts_onlyTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72is Tff7b72True
Te6edf3configTff7b72.Td2a8fftelephone_allow_calls_from_contacts_onlyTff7b72.Td2a8ffsetTb4b4b4(Tff7b72FalseTb4b4b4)
Tff7b72assert Te6edf3configTff7b72.Td2a8fftelephone_allow_calls_from_contacts_onlyTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72is Tff7b72False

T8b949e# Test Call Recording
Tff7b72assert Te6edf3configTff7b72.Td2a8ffcall_recording_enabledTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72is Tff7b72False
Te6edf3configTff7b72.Td2a8ffcall_recording_enabledTff7b72.Td2a8ffsetTb4b4b4(Tff7b72TrueTb4b4b4)
Tff7b72assert Te6edf3configTff7b72.Td2a8ffcall_recording_enabledTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72is Tff7b72True

T8b949e# Test Telephone Enabled (defaults to True)
Tff7b72assert Te6edf3configTff7b72.Td2a8fftelephone_enabledTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72is Tff7b72True
Te6edf3configTff7b72.Td2a8fftelephone_enabledTff7b72.Td2a8ffsetTb4b4b4(Tff7b72FalseTb4b4b4)
Tff7b72assert Te6edf3configTff7b72.Td2a8fftelephone_enabledTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72is Tff7b72False


Tff7b72def Td2a8fftest_auto_propagation_configTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4:
Te6edf3config Tff7b72= Te6edf3ConfigManagerTb4b4b4(Te6edf3dbTb4b4b4)
Tff7b72assert Te6edf3configTff7b72.Td2a8fflxmf_preferred_propagation_node_auto_selectTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72is Tff7b72False
Te6edf3configTff7b72.Td2a8fflxmf_preferred_propagation_node_auto_selectTff7b72.Td2a8ffsetTb4b4b4(Tff7b72TrueTb4b4b4)
Tff7b72assert Te6edf3configTff7b72.Td2a8fflxmf_preferred_propagation_node_auto_selectTff7b72.Td2a8ffgetTb4b4b4(Tb4b4b4) Tff7b72is Tff7b72True


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────